package com.huashi.dealer.modular.business.address.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.huashi.dealer.commonEntity.UserAddress;
import com.huashi.dealer.modular.business.address.param.AddressListsVo;
import com.huashi.dealer.modular.business.address.param.AddressResponseParam;
import com.huashi.dealer.modular.business.address.param.AddressWithRegion;

/**
 * API地址Service接口
 *
 * @author 谭陈强
 * @since 2025-07-30
 */
public interface AddressService extends IService<UserAddress> {

    /**
     * 获取收货地址列表
     *
     * @return 收货地址列表
     */
    AddressListsVo getAddressList();

    /**
     * 添加收货地址
     *
     * @param requestParam 请求参数
     */
    void addAddress(UserAddress requestParam);

    /**
     * 获取收货地址详情
     *
     * @param addressId 地址ID
     * @return 收货地址详情
     */
    AddressWithRegion getAddressDetail(Long addressId);

    /**
     * 编辑收货地址
     *
     * @param requestParam 请求参数
     */
    void editAddress(UserAddress requestParam);         

    /**
     * 设为默认收货地址
     *
     * @param addressId 地址ID
     */
    void setDefaultAddress(Long addressId);

    /**
     * 删除收货地址
     *
     * @param addressId 地址ID
     * @param token 用户令牌
     */
    void deleteAddress(Long addressId);

    /**
     * 获取省市区列表
     *
     * @param parentId 父级ID
     * @return 省市区列表
     */
    AddressResponseParam getRegionList(Long parentId);

    /**
     * 检查收货地址是否存在
     *
     * @param token 用户令牌
     * @return 检查结果
     */
    AddressResponseParam checkAddress(String token);
} 